home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / bbs / qb285p1c.zip / STRUCT.285 < prev    next >
Text File  |  1996-11-03  |  28KB  |  724 lines

  1.   (****************************************************************************)
  2.   (*  Structures document for QuickBBS version 2.85.                          *)
  3.   (*                                                                          *)
  4.   (*  This information may be freely copied and used at no charge by any      *)
  5.   (*  party to write utilities and other software which enhances the use of   *)
  6.   (*  the QuickBBS software.                                                  *)
  7.   (*                                                                          *)
  8.   (*  Use of this information in any other BBS program without the permission *)
  9.   (*  Of Matrix Technologies is strictly prohibited.                          *)
  10.   (*                                                                          *)
  11.   (*      Copyright 1991-96 Matrix Technology                                 *)
  12.   (*      All Rights Reserved.                                                *)
  13.   (****************************************************************************)
  14.  
  15.   (****************************************************************************)
  16.   (*     See the file STRUCTURE.DOC for information on these structures!      *)
  17.   (****************************************************************************)
  18.  
  19. Const
  20. {$IFDEF GOLDBASE}
  21.   MaxMsgAreas  = 500;
  22.   FileExt = '.DAT';
  23. {$ELSE}
  24.   MaxMsgAreas  = 200;
  25.   FileExt = '.BBS';
  26. {$ENDIF}
  27.  
  28. {  MaxFileAreas = 200; infinity }
  29.   MaxLanguages = 30;
  30.   MaxProtocols = 20;
  31.  
  32. type
  33.  
  34.   Attributes = Byte; (* Each Attribute contains 8 bits,
  35.                         each bit is defined seperately.
  36.                         This are broken down "below" the record. *)
  37.  
  38.   FlagType = array[1..4] of Byte;
  39.  
  40. {-------------------------------------------------------------------------}
  41.   UserIdxRecord = record { USERIDX.BBS or USERIDX.DAT }
  42.                     NameCRC : LongInt;
  43.                     AliasCRC: LongInt;
  44.                   end;
  45.  
  46. {-------------------------------------------------------------------------}
  47.   UserRecord = record { USERS.BBS or USERS.DAT }
  48.                  Name        : String[35];
  49.                  City        : String[25];
  50.                  ReservedZero: Byte; { Reserved, should always be 0 }
  51.                  Language    : Byte;
  52.                  PwdCrc      : Longint;
  53.                  PwdChangeDate,
  54.                  ExpireDate  : Word; { Number of days since 1/1/1900 }
  55. {$IFDEF GOLDBASE}
  56.                  HighMsgRead : LongInt;
  57. {$ELSE}
  58.                  UnusedSpace : LongInt;
  59. {$ENDIF}
  60.                  Attrib2     : Byte;   
  61.                  ExtraSpace  : Byte;
  62.                  DataPhone,
  63.                  HomePhone   : String[12];
  64.                  LastTime    : String[5];
  65.                  LastDate    : String[8];
  66.                  Attrib      : Byte;
  67.                  Flags       : FlagType;
  68.                  Credit,
  69.                  Pending,
  70. {$IFDEF GOLDBASE}
  71.                  TimesPosted : Word;
  72.                  ObsoleteField,
  73. {$ELSE}
  74.                  TimesPosted,
  75.                  HighMsgRead,
  76. {$ENDIF}
  77.                  SecLvl,
  78.                  Times,
  79.                  Ups,
  80.                  Downs,
  81.                  UpK,
  82.                  DownK       : Word;
  83.                  TodayK      : Integer;
  84.                  Elapsed,
  85.                  Len         : Integer;
  86.                  CombinedPtr : Word; (* Record number in COMBINED.BBS *)
  87.                                         (* Note:  0 signifies no combined record assigned *)
  88.  
  89.                  AliasPtr    : Word; (* Record number in ALIAS.BBS *)
  90.                                       (* Note:  0 signifies no alias record assigned *)
  91.                  Birthday    : Longint; { Number of days since 1/1/1900 }
  92.                end;
  93.  
  94.  
  95. (* Attrib:
  96.       Bit 1: Deleted
  97.       Bit 2: Screen Clear Codes
  98.       Bit 3: More Prompt
  99.       Bit 4: ANSI
  100.       Bit 5: No-Kill
  101.       Bit 6: Ignore Download Hours
  102.       Bit 7: ANSI Full Screen Editor
  103.       Bit 8: Sex (0=male, 1=female)
  104. *)
  105. (* Attrib2:
  106.       Bit 1: Guest Account              (No Password Needed)
  107.       Bit 2: SSR Configured On/Off      (False/0 = Unused., True/1 = Activated)
  108.       Bit 3: Not Defined Yet (Should be False/0)
  109.       Bit 4: Not Defined Yet (Should be False/0)
  110.       Bit 5: Not Defined Yet (Should be False/0)
  111.       Bit 6: Not Defined Yet (Should be False/0)
  112.       Bit 7: Not Defined Yet (Should be False/0)
  113.       Bit 8: User "Dirty" Flag (If False, User Logged off correctly.
  114.                                 If True, User Failed to Logoff Correctly)
  115.                                 ({Not Yet Used }
  116. *)
  117.  
  118. {-------------------------------------------------------------------------}
  119. type
  120.   UserActivityType =(InMenu,            InDoor,                InCallback,
  121.                      ReadingMessages,   WritingMessage,        ChattingWithSysop,
  122.                      ChattingWithUsers, AnsweringQuestionaire, ViewingTextFile,
  123.                      DownloadingFile,   UploadingFile,         ViewingFileList,
  124.                      DoingFileSearch,   LoggingOn,             LoggingOff,
  125.                      WaitingForCall,    ShutDown,              NoCalls);
  126.  
  127. {-------------------------------------------------------------------------}
  128.   UserOnAttributes = (DoNotDisturb, NodeDirty);
  129.  
  130.   TimeDateRec      = Record
  131.       Time         : Longint;
  132.       Date         : Longint;
  133.   End;
  134.  
  135.   USERONrecord   = record { USERON.BBS }
  136.                      Name           : String[35];
  137.                      Alias          : String[35];
  138.                      Line           : Byte;
  139.                      Baud           : Word;
  140.                      City           : String[25];
  141.                      DoNotDisturb   : Boolean;
  142.                      Conference     : Byte;
  143.                      Activity       : UserActivityType;
  144.                      Language       : Byte;
  145.                      Spare          : Array[2..9] of Byte;
  146.                    end;
  147.  
  148. {-------------------------------------------------------------------------}
  149.   AliasRecord = String[35]; (* for ALIAS.BBS *)
  150.   (* Note: record 0 of ALIAS.BBS is a placeholder only, and contains no
  151.      information. *)
  152.  
  153. {-------------------------------------------------------------------------}
  154.   MsgToIdxRecord = String[35]; { MSGTOIDX.BBS or MSGTOIDX.DAT }
  155.  
  156.   MsgTxtRecord = String[255]; { MSGTXT.BBS or MSGTXT.DAT }
  157.  
  158. {-------------------------------------------------------------------------}
  159.   { Nodelist Records *************************************************** }
  160.  
  161.   NodeTypes      = (ntZone, ntRegion, ntNet, ntNode, ntPrefix);
  162.  
  163.   NodeIdxRecord  = record
  164.                        NodeType       : NodeTypes;
  165.                        Number,
  166.                        Cost           : Word;
  167.                        RawFile        : Byte;
  168.                        RawPos         : LongInt;
  169.                    end;
  170.  
  171.   FileNameType   = String[12];
  172.  
  173.   NodeIncRecord  = record
  174.                        FileName       : FileNameType;
  175.                        DateStamp      : LongInt;
  176.                    end;
  177.  
  178.   { Message Records ******************************************************}
  179.  
  180.   CombSelectType = array[1..MaxMsgAreas] of Boolean; (* for COMBINED.BBS *)
  181.   (* Note: record 0 of COMBINED.BBS is a placeholder only, and contains no
  182.      information. *)
  183.  
  184.  
  185.   InfoRecord = record
  186. {$IFDEF GOLDBASE}
  187.                  LowMsg  : LongInt; { Lowest Message in File }
  188.                  HighMsg : LongInt; { Highest Message in File }
  189.  
  190.                  TotalActive : LongInt; { Total Active Messages }
  191.  
  192.                  ActiveMsgs : array[1..MaxMsgAreas] of Word;
  193. {$ELSE}
  194.                  LowMsg  : Integer; { Lowest Message in File }
  195.                  HighMsg : Integer; { Highest Message in File }
  196.  
  197.                  TotalActive : Integer; { Total Active Messages }
  198.  
  199.                  ActiveMsgs : array[1..MaxMsgAreas] of Integer;
  200. {$ENDIF}
  201.                end;
  202.  
  203.   IdxRecord = record { MSGIDX.BBS or MSGIDX.DAT }
  204. {$IFDEF GOLDBASE}
  205.                 MsgNum : LongInt;
  206.                 Board  : Word;
  207. {$ELSE}
  208.                 MsgNum : Integer;
  209.                 Board  : Byte;
  210. {$ENDIF}
  211.               end;
  212.  
  213.   HdrRecord = record { MSGHDR.BBS or MSGHDR.DAT }
  214. {$IFDEF GOLDBASE}
  215.                 MsgNum,
  216.                 ReplyTo,
  217.                 SeeAlsoNum : LongInt;
  218. {$ELSE}
  219.                 MsgNum,
  220.                 ReplyTo,
  221.                 SeeAlsoNum,
  222. {$ENDIF}
  223.                 TRead    : Integer;
  224. {$IFDEF GOLDBASE}
  225.                 StartRec : LongInt;
  226. {$ELSE}
  227.                 StartRec : Word;
  228. {$ENDIF}
  229.                 NumRecs,
  230.                 DestNet,
  231.                 DestNode,
  232.                 OrigNet,
  233.                 OrigNode : Integer;
  234.                 DestZone,
  235.                 OrigZone : Byte;
  236.                 Cost     : Integer;
  237.                 MsgAttr,
  238.                 NetAttr, (* NOTE:  MsgAttr and NetAttr are WORD for GOLDBASE *)
  239. {$IFDEF GOLDBASE}
  240.                 Board    : Word;
  241. {$ELSE}
  242.                 Board    : Byte;
  243. {$ENDIF}
  244.                 PostTime : String[5];
  245.                 PostDate : String[8];
  246.                 WhoTo,
  247.                 WhoFrom  : String[35];
  248.                 Subj     : String[72];
  249.               end;
  250.  
  251.  
  252. (* Msg Attributes:
  253.  
  254.       Bit 0: Deleted
  255.       Bit 1: Unmoved Outgoing Net Message
  256.       Bit 2: Is a Net Mail Message
  257.       Bit 3: Private
  258.       Bit 4: Received
  259.       Bit 5: Unmoved Outgoing Echo Message
  260.       Bit 6: Local Bit
  261.       Bit 7: Group Message
  262.  
  263.    Net Attributes:
  264.  
  265.       Bit 0: Kill Message after it's been sent
  266.       Bit 1: Sent OK
  267.       Bit 2: File(s) Attached
  268.       Bit 3: Crash Priority
  269.       Bit 4: Request Receipt
  270.       Bit 5: Audit Request
  271.       Bit 6: Is a Return Receipt
  272.       Bit 7: Freq
  273.  
  274. *)
  275.  
  276.   { Other Stuff *********************************************************** }
  277.  
  278.   SysInfoRecord = record { SYSINFO.BBS }
  279.                     CallCount        : LongInt;
  280.                     LastCallerName   : String[35];
  281.                     LastCallerAlias  : String[35];
  282.                     ExtraSpace : array[1..92] of Byte;
  283.                   end;
  284.  
  285.   TodayRecord = record { TODAY.BBS }
  286.                      Name           : String[35];
  287.                      Alias          : String[35];
  288.                      Line           : Byte;
  289.                      City           : String[25];
  290.                      Date           : Longint;
  291.                      Time           : Longint;
  292.                    end;
  293.  
  294.   TimeLogRecord = record { TIMELOG.BBS }
  295.                     StartDate   : String[8];
  296.                     BusyPerHour : array[0..23] of Integer;
  297.                     BusyPerDay  : array[0..6] of Integer;
  298.                   end;
  299.  
  300. {$IFDEF GOLDBASE}
  301.   LastReadType = Array[1..MaxMsgAreas] of LongInt; { LASTREAD.DAT }
  302. {$ELSE}
  303.   LastReadType = Array[1..MaxMsgAreas] of Word; { LASTREAD.BBS }
  304. {$ENDIF}
  305.  
  306.   MenuRecord = record { *.MNU }
  307.                  Typ   : Byte;
  308.                  Sec   : Word;
  309.                  Flags : FlagType;
  310.                  Str   : String[75];
  311.                  Key   : Char;
  312.                  Data  : String[80];
  313.                  Fg,
  314.                  Bg    : Byte;
  315.                end;
  316.  
  317.   Type
  318.     PhraseRecord=Record { *.LNG }
  319.       TextString : String[80];
  320.       KeyString  : String[10];
  321.       Color      : Byte;
  322.      End;
  323.  
  324.   { Configuration Information ********************************************** }
  325.  
  326.   TypeMsgs  = (Standard,Netmail,FMail,EchoMail);
  327.   KindMsgs  = (Both,Private,Public,ROnly);
  328.   
  329.   AskType   = (No, Maybe, Yes);
  330.   ProtocolEnableType = (Never, MNP_Only, Always);
  331.   ProtocolTypes      = (Xmodem, Xmodem1K, Ymodem, YmodemG,
  332.                         Kermit, Zmodem, External);
  333.  
  334.   SecurityRecord = Record { part of main config record }
  335.     Security : Word;
  336.     Flags    : FlagType;
  337.   End;
  338.  
  339.   FileAreaRecord = Record (* FILECFG.DAT *)
  340.     AreaName,
  341.     FilePath,
  342.     ListPath    : String[66];
  343.     AllowUploads,
  344.     IgnoreKlimit,
  345.     IgnoreRatio : Boolean;
  346.     DlSec       : SecurityRecord;
  347.     SearchSec   : SecurityRecord;
  348.     TemplateSec : SecurityRecord;
  349.     CheckDupes  : Boolean;
  350.     Group       : Byte;
  351.     Spare       : Array[3..12] of Byte;
  352.   End;
  353.  
  354.   BoardRecord = record (* MSGCFG.DAT *)
  355.                   Name            : String[40];
  356.                   Typ             : TypeMsgs;
  357.                   Kinds           : KindMsgs;
  358.                   Combined        : Boolean;
  359.                   Aliases         : AskType;
  360.                   Aka             : Byte;
  361.                   OriginLine      : String[58];
  362.                   AllowDelete     : Boolean;
  363.                   KeepCnt,                (* Max # of Msgs to keep *)
  364.                   KillRcvd,               (* Kill received msgs after this many days *)
  365.                   KillOld         : Word; (* Kill msgs after this many days *)
  366.                   ReadSec         : SecurityRecord;
  367.                   WriteSec        : SecurityRecord;
  368.                   TemplateSec     : SecurityRecord;
  369.                   SysopSec        : SecurityRecord;
  370.                   FileArea        : Integer;  (* for Fmail *)
  371.                   Group           : Byte;
  372.                   Spare           : Array[4..12] of Byte;
  373.                 end;
  374.  
  375.    EventStat = (Deleted, Enabled, Disabled);
  376.    
  377.    EventRecord = record (* EVENTCFG.DAT *)
  378.                   Status      : EventStat;
  379.                   RunTime     : LongInt;
  380.                   ErrorLevel  : Byte;
  381.                   Days        : Byte;
  382.                   Forced      : Boolean;
  383.                   LastTimeRun : LongInt;
  384.                   Spare       : Array[1..7] of Byte;
  385.                 end;
  386.  
  387.    NewEventRecord = record (* EVENTCFG.DAT *)
  388.                   Title       : String[20];  (* Name of the Event*)   {20 Bytes}
  389.                   Status      : EventStat;   (* Active Or Not    *)   {21 Byte}
  390.                   Days        : Byte;        (* What Days to Run *)   {22 bytes}
  391.                   OnceAMonth  : Boolean;
  392.                   RunTime     : LongInt;     (* Time To Start    *)   {26 Bytes}
  393.                   StopTime    : LongInt;     (* Time Event Stops *)   {30 bytes}
  394.                   EventAttrib : Word;        (* See below        *)   {32 bytes}
  395.                   ErrorLevel  : Byte;        (* What Errorlevel       {33 Bytes}
  396.                                                   To Shell With  *)
  397.                   LastDateRun : Longint;                              {37 Bytes}
  398.  
  399.                   Spare       : Array[1..8] of Byte;                  {45 Bytes}
  400.             End;
  401.                     (* Days - Byte - Bit 0 = Sunday ... Bit 1 = Monday ... Bit 7 = Sunday *)
  402.                     
  403.                     (* Event Attrib
  404.                        Bit 1 - Deny Users Logon
  405.                        Bit 2 - External Event (Shell) w/Errorlevel
  406.                        Bit 3 - ShutDown Board
  407.                        Bit 4 - Forced Event (Precedes before UserLogins)
  408.                        Bit 5 -
  409.                        Bit 6 -
  410.                        Bit 7 -
  411.                        Bit 8 - Deny File Area Access
  412.                        Bit 9 - Deny Message Base Access
  413.                        Bit 10-
  414.                        Bit 11-
  415.                        Bit 12-
  416.                        Bit 13-
  417.                        Bit 14-
  418.                        Bit 15- New Users Only (Deny Established Users)
  419.                        Bit 16- No Newbies
  420.                     *)
  421.  
  422.    FileKLimitRecord = record { For limit records }
  423.                         Baud  : Word;
  424.                         Limit : Integer;
  425.                       end;
  426.  
  427.    LimitRecord = record (* LIMITS.DAT *)
  428.                    Security     : Word;
  429.                    DailyLimit,
  430.                    SessionLimit,
  431.                    DownLimit    : Integer;
  432.                    PwdLife      : Byte;
  433.                    MinBaud      : Word;
  434.                    FileKLimits  : Array[1..8] of FileKLimitRecord;
  435.                    FileKRatio   : Integer;
  436.                    FileRatio    : Integer;
  437.                    ExpireQuest  : String[8];  (* Questionaire to run when
  438.                                                subscription expires *)
  439.                    ExpireText   : String[8];  (* Text File to display when
  440.                                                subscription expires soon *)
  441.                    DaysWarning  : Byte;  (* Number of days before expiration
  442.                                             to start displaying ExpireText *)
  443.                    Description  : String[40];
  444.                    TopMenu      : String[8];
  445.                    UserPurge    : Byte;  (* For UserPack - delete users who
  446.                                             haven't called in this many days *)
  447.                    MoreFileKLimits  : Array[9..12] of FileKLimitRecord;
  448.                    Spare        : Array[18..20] of Byte;
  449.                  end;
  450.  
  451.    LanguageRecord = record (* LANGUAGE.DAT *)
  452.                       DisplayName : String[20];
  453.                       IEMSIname   : String[5];
  454.                       Available   : Boolean;
  455.                       PhraseFile,
  456.                       MenuPath,
  457.                       TextPath,
  458.                       QuestPath   : String[66];
  459.                       Spare       : Array[1..200] of Byte;
  460.                     end;
  461.  
  462.   ProtocolRecord = record (* PROTOCOL.DAT *)
  463.                      Name                 : string[25];
  464.                      Key                  : Char;
  465.                      ProtocolType         : ProtocolTypes;
  466.                      LogCharacter         : Char;
  467.                      UploadsAllowed       : ProtocolEnableType;
  468.                      DownloadsAllowed     : ProtocolEnableType;
  469.                      LogFile              : string[66];
  470.                      ControlFile          : string[66];
  471.                      UploadCommand        : string[100];
  472.                      UploadControl        : string[100];
  473.                      DownloadCommand      : string[100];
  474.                      DownloadControl      : string[100];
  475.                      SupportsBatch        : Boolean;
  476.                      FileNamePos          : Byte;
  477.                      UploadKeyword        : string[20];
  478.                      DownloadKeyword      : string[20];
  479.                      SuccessErrorLevel    : Byte;
  480.                      FailureErrorLevel    : Byte;
  481.                      Efficiency           : Byte;
  482.                      Spare                : Array[1..100] of Byte;
  483.                    end;
  484.  
  485.    ModemTranslationRecord = Record { for main config record }
  486.                    TranslateFrom : String[25];
  487.                    TranslateTo   : Word;
  488.                  End;
  489.  
  490.    Key4Type = Array[1..4] of Word;
  491.  
  492.    NodeConfigRecord = record  (* NODECFG.DAT *)
  493.                         Node      : Byte;               (* Node #, can be overriden by -Nxx CmdLine *)
  494.                        
  495.                        (*  Modem Parameters  *)
  496.                         
  497.                         CommPort      : Integer;
  498.                         InitBaud      : Word;
  499.                         ModemDelay    : Word;
  500.                         InitTimes,
  501.                         AnswerWait    : Integer;
  502.                         ModemInitStr,
  503.                         ModemBusyStr  : String[70];
  504.                         ModemInitResp,
  505.                         ModemBusyResp : String[40];
  506.  
  507.                         ModemConnectResp :
  508.                           Array[1..20] of ModemTranslationRecord;
  509.  
  510.                         CBV_CallbackDelay,
  511.                         CBV_WakeupDelay : Word;
  512.  
  513.                         ARQ_String      : String[8];
  514.                         SendATA         : Boolean;
  515.  
  516.                         NetPath,
  517.                         NodelistPath,
  518.                         MsgPath,
  519.                         SwapPath,
  520.                         OverlayPath     : String[66];
  521.                         EditorCmdStr,
  522.                         UserEditor      : String[70];
  523.                         OriginLine      : String[58];
  524.                         MinBaud,
  525.                         GraphicsBaud,
  526.                         XferBaud        : Integer;
  527.  
  528.                        (* Callback verifier *)
  529.                        VerifierInit    : string[35];
  530.                        DialString      : string[15];
  531.                        DialSuffix      : string[15];
  532.  
  533.                        (*  Default Information for New Users  *)
  534.                        DefaultSec      : SecurityRecord;
  535.                        MinimumSec      : SecurityRecord;
  536.                        DefaultCredit   : Integer;
  537.                        FastLogon       : Boolean;
  538.                        ExtraSpace      : array[3..200] of byte;
  539.                 End;
  540.  
  541.    ConfigRecord = record  (* QUICKCFG.DAT *)
  542.  
  543.                    VersionID : Word;
  544.  
  545.                    WasNodeInfo : Array[1..481] of Byte;
  546.                    (*  System Paths  *)
  547.                    WasEditorCmdStr    : String[70];
  548.                    Stat6Line1,
  549.                    Stat6Line2,
  550.                    WasNetPath,
  551.                    WasNodelistPath,
  552.                    WasMsgPath,
  553.                    WasSwapPath,
  554.                    WasOverlayPath     : String[66];
  555.  
  556.                    OldPrompts : Array[1..213] of Byte;
  557.  
  558.                    (* System misc strings *)
  559.                    OldOriginLine      : String[58];
  560.                    QuoteStr        : String[3];
  561.  
  562.                    (*  User Restrictions *)
  563.                    LowBaudStart,
  564.                    LowBaudEnd,
  565.                    DownloadStart,
  566.                    DownloadEnd     : LongInt;
  567.                    MaxPageTimes,
  568.                    PageBellLen     : Integer;
  569.                    PagingStart,
  570.                    PagingEnd       : LongInt;
  571.                    OldBaudStuff    : Array[1..6] of Byte;
  572.  
  573.                    (*  Matrix Information  *)
  574.                    MatrixZone,
  575.                    MatrixNet,
  576.                    MatrixNode,
  577.                    MatrixPoint     : array[0..10] of Integer;
  578.                    NetMailBoard    : Integer;
  579.  
  580.                    OldNewUserInfo : Array[1..14] of Byte;
  581.  
  582.                    (*  Sysop Security Etc. *)
  583.                    SysopSecurity   : SecurityRecord;
  584.                    SysopName       : String[35];
  585.                    SystemName      : String[40];
  586.                    RegKey          : LongInt;
  587.  
  588.                    (*  Misc System Parameters  *)
  589.  
  590.                    TextFileShells,
  591.                    AltJswap,
  592.                    Editorswap,
  593.                    AutoLogonChar,
  594.                    FormerFastLogon,  {Former FastLogon, unused, Moved to Nodecfg}
  595.                    UseLastRead,
  596.                    MonoMode,
  597.                    DirectWrite,
  598.                    SnowCheck,
  599.                    NetEchoExit,
  600.                    OneWordNames,
  601.                    CheckMail,
  602.                    AskHomePhone,
  603.                    AskDataPhone,
  604.                    AskBirthday,
  605.                    AskSex,
  606.                    Use_Xmodem,
  607.                    Use_Xmodem1k,
  608.                    Use_Ymodem      : Boolean;
  609.                    Use_YmodemG     : ProtocolEnableType;
  610.                    Use_Kermit,
  611.                    Use_Zmodem,
  612.                    Inp_Fields,
  613.                    GraphicsAvail,
  614.                    ForceUS_Phone   : Boolean;
  615.                    InactiveTimeOut : Integer;
  616.                    LogonTime       : Integer;
  617.                    DefFgColor      : Integer;
  618.                    DefBgColor      : Integer;
  619.                    PasswordTries   : Integer;
  620.                    EntFldColor     : Byte; (* Color for entry fields *)
  621.                    BorderColor     : Byte; (* Color for menu borders *)
  622.                    WindowColor     : Byte;
  623.                    StatusBarColor  : Byte;
  624.                    UploadCredit    : Integer;
  625.                    ScreenBlank     : Byte;
  626.  
  627.                    (* Callback verifier *)
  628.                    CBV_Spare       : Array[1..68] of Byte;
  629.                    DupeCheck       : Boolean;
  630.                    NewUserSec,
  631.                    MemberSec       : Word;
  632.                    MemberFlags     : Array[1..4,1..8] of Char;
  633.                    LDcost          : Word;
  634.                    LDenable,
  635.                    ResumeLocal,
  636.                    ResumeLD        : Boolean;
  637.                    LDstart,
  638.                    LDend           : Longint;
  639.  
  640.                    ForgotPwdBoard  : Byte;
  641.                    WasSendATA      : Boolean;
  642.  
  643.                    Location        : String[60];
  644.  
  645.                    ArchiveNetMail  : Boolean;
  646.  
  647.                    IEMSI,
  648.                    IEMSI_New,
  649.                    AutoAnsi,
  650.                    MultiNode,
  651.                    AutoLogChat     : Boolean;
  652.                    WasUserEditor      : String[70];
  653.  
  654.                    FileAreaCols,
  655.                    MsgAreaCols     : Byte;
  656.  
  657.                    NewUserExpiry   : Word;
  658.  
  659.                    PasswordLength  : Byte;
  660.  
  661.                    ShowIdle        : Boolean;
  662.  
  663.                    LocalRipExt     : String[3];
  664.  
  665.                    Key4            : Key4Type;
  666.  
  667.                    ExtraSpace      : Array[159..400] of Byte;
  668.  
  669.                  end;
  670.  
  671. Type    MenuHelpCfg_Rec = Record
  672.              Description    : String[37]; (* Visible Help Descrpt.           *)
  673.              Options        : String[37] ;(* Visible "Options" For Menu Type *)
  674.              Visible_Line   : String[75] ;(* Menu's Visible Line             *)
  675.              Optional_Data  : String[80]; (* Menu's Optional Data            *)
  676.              ImportOkay     : Boolean; 
  677.              Menu_Type      : Word;       (* Menu Type to be imported        *)
  678.              Security       : SecurityRecord; 
  679.              Hot_Key        : Char;
  680.              ForeGround,
  681.              BackGround     : Byte; 
  682.              Group          : Byte; 
  683. End;
  684.  
  685.  
  686.   GosubDataType = array[1..20] of String[8];
  687.  
  688.   ExitRecord = record (* EXITINFO.BBS *)
  689.                  BaudRate        : Integer;
  690.                  SysInfo         : SysInfoRecord;
  691.                  TimeLogInfo     : TimeLogRecord;
  692.                  UserInfo        : UserRecord;
  693.                  EventInfo       : EventRecord;
  694.                  NetMailEntered  : Boolean;
  695.                  EchoMailEntered : Boolean;
  696.                  LoginTime       : String[5];
  697.                  LoginDate       : String[8];
  698.                  TmLimit         : Integer;
  699.                  LoginSec        : LongInt;
  700.                  Credit          : LongInt;
  701.                  UserRecNum      : Integer;
  702.                  ReadThru        : Word;
  703.                  PageTimes       : Integer;
  704.                  DownLimit       : Integer;
  705.                  WantChat        : Boolean;
  706.                  GosubLevel      : Byte;
  707.                  GosubData       : GosubDataType;
  708.                  Menu            : String[8];
  709.                  ScreenClear     : Boolean;
  710.                  MorePrompts     : Boolean;
  711.                  GraphicsMode    : Boolean;
  712.                  ExternEdit      : Boolean;
  713.                  ScreenLength    : Integer;
  714.                  MNP_Connect     : Boolean;
  715.                  ChatReason      : String[48];
  716.                  ExternLogoff    : Boolean;
  717.                  ANSI_Capable    : Boolean;
  718.                  CurrentLanguage : Byte;
  719.                  RIP_Active      : Boolean;
  720.                  ExtraSpace      : Array[2..200] of Byte;
  721.                end;
  722.  
  723.  
  724.